package com.hylanda.config.datasource;

import java.util.Map;

import javax.persistence.EntityManager;
import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/** 
 * @author zhangy
 * @E-mail:blackoon88@gmail.com 
 * @qq:846579287
 * @version created at：2017年11月15日 上午11:24:01 
 * 数据数据源详细配置
 */
//@Configuration
//@EnableTransactionManagement
//@EnableJpaRepositories(
//        entityManagerFactoryRef="entityManagerFactory1",//实体管理引用
//        transactionManagerRef="transactionManager1",//事务管理引用
//        basePackages = {"com.hylanda.pb"}) //设置数据源所应用到的包
public class Datasource1Configurer {
	//注入数据源
//    @Autowired
//    @Qualifier("dataSource1")
//    private DataSource dataSource1;
//
//    //配置EntityManager实体
//    @Primary
//    @Bean(name = "entityManager1")
//    public EntityManager entityManager(EntityManagerFactoryBuilder builder) {
//        return entityManagerFactory(builder).getObject().createEntityManager();
//    }
//
//    //配置EntityManager工厂实体
//    @Primary
//    @Bean(name = "entityManagerFactory1")
//    public LocalContainerEntityManagerFactoryBean entityManagerFactory (EntityManagerFactoryBuilder builder) {
//        return builder
//                .dataSource(dataSource1)
//                .properties(getVendorProperties(dataSource1))
//                .packages(new String[]{"com.hylanda.pb" }) //设置应用creditDataSource的基础包名
//                .persistenceUnit("PersistenceUnitSys")
//                .build();
//    }
//
//    //注入jpa配置实体
//    @Autowired
//    private JpaProperties jpaProperties;
//
//    //获取jpa配置信息
//    private Map<String, String> getVendorProperties(DataSource dataSource) {
//        return jpaProperties.getHibernateProperties(dataSource);
//    }
//
//    //配置事务
//    @Primary
//    @Bean(name = "transactionManager1")
//    public PlatformTransactionManager transactionManagerBook(EntityManagerFactoryBuilder builder) {
//        return new JpaTransactionManager(entityManagerFactory(builder).getObject());
//    }
}
